resource "aws_lb_target_group"
from Target Group
code:例.tf(rb)
resource "aws_lb_target_group" "asg" {
name = "terraform-asg-example"
port = var.server_port
protocol = "HTTP"
vpc_id = data.aws_vpc.default.id
health_check {
path = "/"
protocol = "HTTP"
matcher = "200"
interval = 15
timeout = 3
healthy_threshold = 2
unhealthy_threshold = 2
}
}
これ↑でtarget groupを宣言して、別リソースからこれを参照する
例えば、resource "aws_autoscaling_group"の中で以下の様に書く
code:tf(rb)
resource "aws_autoscaling_group" "example" {
target_group_arns = aws_lb_target_group.asg.arn
health_check_type = "ELB"
...
}
参照の向きそっちなんだmrsekut.icon
Target Group → Targetじゃなくて
Target Group ← Targetなんだ
GPT-4.icon
AWS のロードバランサー(ALB / NLB)の転送先(ターゲット)をグループ化するリソース です。
ロードバランサーは、リスナーでリクエストを受け取った後、
どの EC2 / ECS / Lambda などにリクエストを転送するかをこの「Target Group」で指定します。
✅ 基本情報
table:_
項目 説明
リソース名 aws_lb_target_group
目的 ALB/NLB のリクエストの転送先を定義
タイプ instance(EC2) / ip(IP直指定) / lambda(Lambda 関数)
重要設定 プロトコル、ポート、ターゲットタイプ、ヘルスチェック
🔍 基本構造
code:hcl(rb)
resource "aws_lb_target_group" "example" {
name = "example-tg"
port = 80
protocol = "HTTP"
vpc_id = aws_vpc.main.id
}
🎯 主なパラメータ
table:_
パラメータ 説明
name ターゲットグループの名前
port 転送先サーバのリスンポート
protocol HTTP / HTTPS / TCP など
target_type instance(EC2) / ip(IP)/ lambda(Lambda関数)
vpc_id ターゲットが存在する VPC の ID
health_check ヘルスチェックの設定
⚙️ ヘルスチェック例
code:hcl(rb)
resource "aws_lb_target_group" "example" {
name = "example-tg"
port = 80
protocol = "HTTP"
vpc_id = aws_vpc.main.id
health_check {
path = "/health"
interval = 30
timeout = 5
healthy_threshold = 2
unhealthy_threshold = 2
matcher = "200-399"
}
}
path: ヘルスチェック用のパス(例: /health)
interval: ヘルスチェック間隔(秒)
timeout: タイムアウト時間(秒)
matcher: 正常と判定する HTTP ステータスコード範囲
🔄 ターゲットの登録例
resource "aws_lb_target_group_attachment"
code:hcl(rb)
resource "aws_lb_target_group_attachment" "example" {
target_group_arn = aws_lb_target_group.example.arn
target_id = aws_instance.example.id
port = 80
}
target_id: EC2 インスタンス ID(ターゲットタイプが instance の場合)
port: 転送先ポート
🔐 target_type の違い
table:_
タイプ 説明
instance EC2 インスタンスをターゲットにする(インスタンス ID 指定)
ip IP アドレスをターゲットにする(ECS で awsvpc モードの場合に便利)
lambda Lambda 関数をターゲットにする(ALB のみ対応)
🗂️ ALB 全体構成イメージ
code:text
ALB --> Listener --> Target Group --> EC2 Instance
ALB がリクエストを受け取る
Listener がリクエストポート・パスを判定
Target Group が転送先サーバを管理
Target Group Attachment が具体的な EC2 や IP を接続